package com.ruoyi.ora.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 设备对象 ora_device
 * 
 * @author liuwp
 * @date 2024-11-14
 */
public class Device extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 设备类型 */
    @Excel(name = "设备类型", dictType = "ora_device_type")
    private Integer deviceType;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceNo;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 设备图片 */
    @Excel(name = "设备图片")
    private String deviceIcon;

    /** 设备sn */
    @Excel(name = "设备sn")
    private String deviceSn;

    /** 电话号 */
    @Excel(name = "电话号")
    private String deviceTelnum;

    /** IMEI */
    @Excel(name = "IMEI")
    private String deviceImei;

    private String deviceIcciid;

    /** 设备档位 */
    @Excel(name = "设备档位")
    private Integer deviceGear;

    /** 参数配置 */
    @Excel(name = "参数配置")
    private String deviceConfig;

    /** 蓝牙标记 */
    @Excel(name = "蓝牙标记")
    private String bluetoothSign;

    /** 心跳时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "心跳时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date heartTime;

    /** 绑定时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "绑定时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bindTime;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deleteTime;

    /** 设备状态 */
    @Excel(name = "设备状态", dictType = "ora_device_status")
    private Integer status;

    /** 设备坐标 */
    @Excel(name = "设备坐标")
    private String devicePosition;

    /** 地址 */
    @Excel(name = "地址")
    private String deviceAddress;

    /** IOT版本 */
    @Excel(name = "IOT版本")
    private String deviceVersion;

    /** MAC地址 */
    @Excel(name = "MAC地址")
    private String deviceMac;

    private String deviceQuantity;
    private String deviceVoltage;

    private String terminalId;

    private Integer deviceModel;
    private Long customModelId;

    private Long adminUserId;
    private String iccid;

    private Long fromDeviceId;
    private Long toDeviceId;
    private Integer migrationType;

    /** 剩余时长  不限-1 */
    @Excel(name = "剩余时长  不限-1")
    private Long surplusDuration;

    /** 剩余流量 */
    @Excel(name = "剩余流量")
    private Long surplusSize;

    /** 总流量 */
    @Excel(name = "总流量")
    private Long totalSize;

    /** 产品id */
    @Excel(name = "产品id")
    private Long productId;

    /** 充值时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "充值时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    public Long getSurplusDuration() {
        return surplusDuration;
    }

    public void setSurplusDuration(Long surplusDuration) {
        this.surplusDuration = surplusDuration;
    }

    public Long getSurplusSize() {
        return surplusSize;
    }

    public void setSurplusSize(Long surplusSize) {
        this.surplusSize = surplusSize;
    }

    public Long getTotalSize() {
        return totalSize;
    }

    public void setTotalSize(Long totalSize) {
        this.totalSize = totalSize;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Date getChangeTime() {
        return changeTime;
    }

    public void setChangeTime(Date changeTime) {
        this.changeTime = changeTime;
    }

    public Long getFromDeviceId() {
        return fromDeviceId;
    }

    public void setFromDeviceId(Long fromDeviceId) {
        this.fromDeviceId = fromDeviceId;
    }

    public Long getToDeviceId() {
        return toDeviceId;
    }

    public void setToDeviceId(Long toDeviceId) {
        this.toDeviceId = toDeviceId;
    }

    public Integer getMigrationType() {
        return migrationType;
    }

    public void setMigrationType(Integer migrationType) {
        this.migrationType = migrationType;
    }

    public String getIccid() {
        return iccid;
    }

    public void setIccid(String iccid) {
        this.iccid = iccid;
    }

    public String getDeviceIcciid() {
        return deviceIcciid;
    }

    public void setDeviceIcciid(String deviceIcciid) {
        this.deviceIcciid = deviceIcciid;
    }

    public Long getAdminUserId() {
        return adminUserId;
    }

    public void setAdminUserId(Long adminUserId) {
        this.adminUserId = adminUserId;
    }

    public Integer getDeviceModel() {
        return deviceModel;
    }

    public void setDeviceModel(Integer deviceModel) {
        this.deviceModel = deviceModel;
    }

    public Long getCustomModelId() {
        return customModelId;
    }

    public void setCustomModelId(Long customModelId) {
        this.customModelId = customModelId;
    }

    public String getDeviceQuantity() {
        return deviceQuantity;
    }

    public void setDeviceQuantity(String deviceQuantity) {
        this.deviceQuantity = deviceQuantity;
    }

    public String getDeviceVoltage() {
        return deviceVoltage;
    }

    public void setDeviceVoltage(String deviceVoltage) {
        this.deviceVoltage = deviceVoltage;
    }

    public String getTerminalId() {
        return terminalId;
    }

    public void setTerminalId(String terminalId) {
        this.terminalId = terminalId;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setDeviceType(Integer deviceType) 
    {
        this.deviceType = deviceType;
    }

    public Integer getDeviceType() 
    {
        return deviceType;
    }
    public void setDeviceNo(String deviceNo) 
    {
        this.deviceNo = deviceNo;
    }

    public String getDeviceNo() 
    {
        return deviceNo;
    }
    public void setDeviceName(String deviceName) 
    {
        this.deviceName = deviceName;
    }

    public String getDeviceName() 
    {
        return deviceName;
    }
    public void setDeviceIcon(String deviceIcon) 
    {
        this.deviceIcon = deviceIcon;
    }

    public String getDeviceIcon() 
    {
        return deviceIcon;
    }
    public void setDeviceSn(String deviceSn) 
    {
        this.deviceSn = deviceSn;
    }

    public String getDeviceSn() 
    {
        return deviceSn;
    }
    public void setDeviceTelnum(String deviceTelnum) 
    {
        this.deviceTelnum = deviceTelnum;
    }

    public String getDeviceTelnum() 
    {
        return deviceTelnum;
    }
    public void setDeviceImei(String deviceImei) 
    {
        this.deviceImei = deviceImei;
    }

    public String getDeviceImei() 
    {
        return deviceImei;
    }
    public void setDeviceGear(Integer deviceGear) 
    {
        this.deviceGear = deviceGear;
    }

    public Integer getDeviceGear() 
    {
        return deviceGear;
    }
    public void setDeviceConfig(String deviceConfig) 
    {
        this.deviceConfig = deviceConfig;
    }

    public String getDeviceConfig() 
    {
        return deviceConfig;
    }
    public void setBluetoothSign(String bluetoothSign) 
    {
        this.bluetoothSign = bluetoothSign;
    }

    public String getBluetoothSign() 
    {
        return bluetoothSign;
    }
    public void setHeartTime(Date heartTime) 
    {
        this.heartTime = heartTime;
    }

    public Date getHeartTime() 
    {
        return heartTime;
    }
    public void setBindTime(Date bindTime) 
    {
        this.bindTime = bindTime;
    }

    public Date getBindTime() 
    {
        return bindTime;
    }
    public void setDeleteTime(Date deleteTime) 
    {
        this.deleteTime = deleteTime;
    }

    public Date getDeleteTime() 
    {
        return deleteTime;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setDevicePosition(String devicePosition) 
    {
        this.devicePosition = devicePosition;
    }

    public String getDevicePosition() 
    {
        return devicePosition;
    }
    public void setDeviceAddress(String deviceAddress) 
    {
        this.deviceAddress = deviceAddress;
    }

    public String getDeviceAddress() 
    {
        return deviceAddress;
    }
    public void setDeviceVersion(String deviceVersion) 
    {
        this.deviceVersion = deviceVersion;
    }

    public String getDeviceVersion() 
    {
        return deviceVersion;
    }
    public void setDeviceMac(String deviceMac) 
    {
        this.deviceMac = deviceMac;
    }

    public String getDeviceMac() 
    {
        return deviceMac;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceType", getDeviceType())
            .append("deviceNo", getDeviceNo())
            .append("deviceName", getDeviceName())
            .append("deviceIcon", getDeviceIcon())
            .append("deviceSn", getDeviceSn())
            .append("deviceTelnum", getDeviceTelnum())
            .append("deviceImei", getDeviceImei())
            .append("deviceGear", getDeviceGear())
            .append("deviceConfig", getDeviceConfig())
            .append("bluetoothSign", getBluetoothSign())
            .append("heartTime", getHeartTime())
            .append("createTime", getCreateTime())
            .append("bindTime", getBindTime())
            .append("updateTime", getUpdateTime())
            .append("deleteTime", getDeleteTime())
            .append("status", getStatus())
            .append("devicePosition", getDevicePosition())
            .append("deviceAddress", getDeviceAddress())
            .append("deviceVersion", getDeviceVersion())
            .append("deviceMac", getDeviceMac())
            .toString();
    }
}
